package container.map;

import java.util.Comparator;
import java.util.LinkedHashMap;
import java.util.Map;

/**
 * TreeMap 中的元素默认按照 keys 的自然排序排列，如果要改变其排序可以自己写一个 Comparator
 * 对 Integer 来说，其自然排序就是数字的升序；对 String 来说，其自然排序就是按照字母表排序
 * <p>
 * LinkedHashMap(默认为插入顺序) 保留了 HashMap 的优势，且其包含的元素是有序的。它在有大量迭代的情况下表现更好
 */
public class T01_TreeMap {
    public static void main(String[] args) {
        // Map<Integer, String> map = new TreeMap<>(new MyComparator());
        Map<Integer, String> map = new LinkedHashMap<>();
        map.put(3, "val");
        map.put(2, "val");
        map.put(1, "val");
        map.put(5, "val");
        map.put(4, "val");
        System.out.println(map);
    }

    static class MyComparator implements Comparator<Integer> {
        public int compare(Integer o1, Integer o2) {
            return o1.compareTo(o2);
        }
    }
}
